package com.ruoyi.system.mapper;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.system.domain.MxWare;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

/**
 * 仓库管理Mapper接口
 *
 * @author yushuaixm
 * @date 2024-08-15
 */
@Mapper
public interface MxWareMapper {

    @Select("SELECT * FROM `mx_ware` where product_id = #{pro_id}")
    List<JSONObject> getDataByProductId(@Param("pro_id") String pro_id);

    // 减少库存
    @Update("update mx_ware set inventory = inventory - #{num},up_time=now() where id = #{id}")
    int inWareOutNum(@Param("id") String id,@Param("num") int num);

    // 增加库存
    @Update("update mx_ware set inventory = inventory + #{num},up_time=now() where id = #{id}")
    int inWareAddNum(@Param("id") String id,@Param("num") int num);

    @Select("SELECT a.id,CONCAT(b.`name`,'-',b.model,'-',a.color,'-',a.gg_name) val FROM `mx_ware` a,mx_product b where a.product_id = b.id")
    List<JSONObject> getAllWare();
    /**
     * 查询仓库管理
     *
     * @param id 仓库管理主键
     * @return 仓库管理
     */
    public MxWare selectMxWareById(Long id);

    /**
     * 查询仓库管理列表
     *
     * @param mxWare 仓库管理
     * @return 仓库管理集合
     */
    public List<MxWare> selectMxWareList(MxWare mxWare);

    /**
     * 新增仓库管理
     *
     * @param mxWare 仓库管理
     * @return 结果
     */
    public int insertMxWare(MxWare mxWare);

    /**
     * 修改仓库管理
     *
     * @param mxWare 仓库管理
     * @return 结果
     */
    public int updateMxWare(MxWare mxWare);

    /**
     * 删除仓库管理
     *
     * @param id 仓库管理主键
     * @return 结果
     */
    public int deleteMxWareById(Long id);

    /**
     * 批量删除仓库管理
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMxWareByIds(Long[] ids);
}
